package com.xk.jdbc;

import java.sql.*;

/**
 * DBUtils类提供了数据库连接和资源释放的工具方法
 */
public class DBUtils {
    // 静态代码块用于加载MySQL数据库驱动
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException("数据库驱动加载失败", e);
        }
    }

    /**
     * 获取数据库连接
     *
     * @return 数据库连接对象
     */
    public static Connection getConnection() {
        Connection connection;
        try {
            // 创建到本地MySQL数据库的连接
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC", "root", "123456");
        } catch (SQLException e) {
            throw new RuntimeException("数据库连接失败", e);
        }
        return connection;
    }

    /**
     * 关闭数据库连接和相关资源
     */
    public static void closeAll(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) {
        try {
            // 检查并关闭结果集
            if (resultSet != null) {
                resultSet.close();
            }
            // 检查并关闭预编译语句
            if (preparedStatement != null) {
                preparedStatement.close();
            }
            // 检查并关闭数据库连接
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException("数据库资源关闭失败", e);
        }
    }
}
